物理連接埠
指的是硬體設備(例如 Router、Switch、電腦等)上的連接埠,例如 Ethernet RJ-45、光纖、Cable 的連接孔。
邏輯連接埠
為在兩個系統之間建立連線時,透過使用連接埠(Port)可以讓同一個 IP 位置,依照使用的通訊協定,使用不同的連接埠,以同時建立多個連線,以下為連接埠的範圍分配:
- 眾所皆知(0-1023):TCP/IP 模型常用的核心協定,例如 DNS、SMTP 等。
- 註冊連接埠(1024-49151):由特定的應用程式使用,雖然已經經過 IANA(Internet Assigned Numbers Authority,網際網路編號分配機構)的核准,但實務上通常為應用程式自行選擇要使用的連接埠,如果遇到已經被使用,則可以再自行更改。例如 MS SQL Server 使用 1433/1434、Docker REST API 使用 2375/2376 等。
- 動態或專用連接埠(49152-65535):每當要求眾所皆知或註冊連接埠相關的服務時,這些服務都會回應一個動態的連接埠,專用於當次的 Session,並於連線結束或 Session 過期後釋出。
安全連接埠
有部分的協定以明文傳輸,並未進行加密,這將可能使封包被攔截,實施嗅探(Sniffing)攻擊,導致機密資訊(如個資、密碼等)遭到洩漏。
以下列出常用以明文傳輸的協定與連接埠號碼,並提供建議使用的安全加密傳輸協定:
- FTP(File Transfer Protocol):21 Port
- 建議改為 SFTP(Secure File Transfer Protocol):22 Port
- Telnet:23 Port
- 建議改為 SSH(Secure Shell Protocol):22 Port
- SMTP(Simple Mail Transfer Protocol):25 Port
- 建議使用 TLS 傳輸(SMTP with TLS):587 Port
- NTP(Time Protocol):37 Port
- 大多數設備已改用 123 Port,具有更好的錯誤處理能力
- DNS(Domain Name Service):53 Port
- 仍然被廣泛使用,但建議可在 853 Port 上使用 DNS over TLS(DoT),防止 DNS 資訊在傳輸過程遭到修改
- HTTP(HyperText Transfer Protocol):80、8080 Port
- 應改為使用 443 Port,為具有 SSL/TLS 的 HTTP 協定(HyperText Transfer Protocol Secure,HTTPS),但 SSL 加密已被破解,因此建議使用 TLS 1.3 以上的版本進行加密
- IAMP(Internet Message Access Protocol):143 Port
- 改為使用 IAMP for SSL/TLS:993 Port
- SNMP(Simple Network Management Protocol):161/162 Port
- 由於所有的 SNMP 協定皆使用 161/162 Port,建議確認使用 SNMPv2、SNMPv3,已提供加密與其他安全相關功能。
- SMB(Server Message Block):445 Port
- 經常使用於 Windows 間的檔案傳輸,但有多種漏洞,建議改為使用 2049 Port 的 NFS(Network File System)協定。
- LDAP(Lightweight Directory Access Protocol):389 Port
- 將使用者目錄的資訊從伺服器傳送至客戶端,可以被使用在 Email 或其他系統的使用者名稱(例如公司經常使用 Windows AD 作為 SSO 帳號)。由於可以透過 LDAP 協定更新使用者目錄,且因沒有加密容易遭受攻擊,建議改用 636 Port 的 LDAPS(Lightweight Directory Access Protocol Secure)協定。